function getElement(arr, items) {
  Array.from(arr).forEach((item) => {
    if (item instanceof Array) {
      getElement(item.reverse(), items)
    } else {
      items[items.length] = item
    }
  })
}

function Queue() {
  // 基于数组实现
  this.items = []

  // 创建的时候传入可迭代结构怎么办？不能直接初始化嘛

  //1.添加新的项
  Queue.prototype.enqueue = function() {
    getElement(arguments, this.items.reverse())
    this.items.reverse()
  }

  //2.移除操作，返回被移除的项
  Queue.prototype.dequeue = function() {
    let temp = this.items[this.items.length - 1]
    this.items.length--
      return temp
  }

  // 3.返回队列的第一个元素
  Queue.prototype.front = function() {
    return this.items[this.items.length - 1]
  }

  // 4.判断队列是否为空
  Queue.prototype.isEmpty = function() {
    return this.items.length == 0
  }

  // 5.返回队列大小
  Queue.prototype.size = function() {
    return this.items.length
  }

  // 6.将队列中的内容转换为字符串
  Queue.prototype.toString = function(punctuation) {
    return this.items.join(punctuation)
  }

}

module.exports = Queue


// let q = new Queue()
// q.enqueue(1)
// q.enqueue(2)
// q.enqueue([3, 4])
// console.log(q.items);
// console.log(q.dequeue());
// console.log(q.items);
// console.log(q.front());
// console.log(q.isEmpty());
// console.log(q.size());
// console.log(q.toString());
// console.log(q);